A list of files may also be linked into an executable application. Custom code and data are created as before, and a small main program is written to start the application. All of these files and any required shared libraries are then linked together to form an executable.